export interface Identifier<ID = number | string> {
    id: ID
}

export default interface Named<ID = number | string> extends Identifier<ID> {
    name?: string;
    disabled?: boolean;
}

export class NamedImpl<ID = number | string> implements Named<ID> {
    public id: ID;
    public name?: string;
    public disabled: boolean = false;

    constructor(id?: ID, name?: string) {
        this.id = id!;
        this.name = name;
    }
}
